package zuoye0509;

public class CarMgr {
	int companyName;

	Car[] car = new Car[50];

	/**
	 * 新增车辆
	 * 
	 * @param newName 车辆名称
	 * @return 返回是否增加成功
	 */
	public boolean addCar(String newName, double newPrice) {
		if (!cheakNewCar(newName)) {
			for (int a = 0; a < car.length; a++) {
				if (car[a] == null) {
					car[a] = new Car();
					car[a].name = newName;
					car[a].state = true;
					car[a].date = 0;
					car[a].count = 0;
					car[a].price = newPrice;
					return true;
				}
			}
		}
		return false;
	}

	/**
	 * 检车车辆是否重复添加
	 * 
	 * @param newName 检查的名称
	 * @return 返回是否重复
	 */
	public boolean cheakNewCar(String newName) {
		for (int b = 0; b < car.length; b++) {
			if (car[b] != null) {
				if (car[b].name.equals(newName)) {
					return true;
				}
			}
		}
		return false;
	}

	/**
	 * 展示车辆信息
	 */
	public void show() {
		System.out.println("序号\t车辆信息\t状态\t借出日期\t借出次数\t日租金");
		for (int c = 0; c < car.length; c++) {
			if (car[c] != null) {
				System.out.print(c + 1);
				car[c].show();
			}
		}
	}

	/**
	 * 将需要淘汰的车删除
	 * 
	 * @param oldName 要淘汰的车的名称
	 * @return 返回结果
	 */
	public String cancelCar(String oldName) {
		for (int d = 0; d < car.length; d++) {// 检验该车辆是否存在，如果是则继续
			if (car[d] != null) {
				if (car[d].name.equals(oldName)) {// 找到了它
					if (car[d].state == false) {// 确定是否在库
						return "车辆已借出，无法删除";
					} else {
						car[d] = null;// 在话，把他变空
						for (int e = d; e < car.length - 1; e++) {// 重新排序，后面的都往前移
							car[e] = car[e + 1];
							if (e + 2 == car.length) {
								car[car.length - 1] = null;// 把最后一变成null
								return "淘汰成功";
							}
						}
					}
				}
			}
		}
		return "未找到该车辆，请重新输入";
	}

	/**
	 * 借车流程
	 * 
	 * @param borrowCar 要租借的车的名称
	 * @param borrowDay 租借得时长
	 * @return 返回结果
	 */
	public String rentCar(String borrowCar, int borrowDay) {
		for (int f = 0; f < car.length; f++) {
			if (car[f] != null) {
				if (car[f].name.equals(borrowCar)) {
					if (car[f].state == false) {
						return "该车已经借出，请重新输入";
					} else {
						car[f].date += borrowDay;
						car[f].state = false;
						car[f].count += 1;
						return "您已成功借得该车";
					}
				}
			}
		}
		return "没有找到该车，请重新输入";
	}

	/**
	 * 归还车辆
	 * 
	 * @param backCar 归还车辆得名称
	 * @return 返回结果
	 */
	public String returnCar(String backCar) {
		for (int j = 0; j < car.length; j++) {
			if (car[j] != null) {
				if (car[j].name.equals(backCar)) {
					if (car[j].state == true) {
						return "该车已在库里，请重新输入";
					} else {
						car[j].state = true;
						double money = car[j].date * car[j].price;
						car[j].date = 0;
						return "成功归还，请支付" + money + "元";
					}
				}
			}

		}
		return "没有找到该车，请重新输入";

	}
}
